Enable tone generator - #3
Closed
ranj063 wants to merge 15 commits into
Closed
Conversation
This patch proposes to enable kcontrols for siggen type dapm widgets. This will allow triggering the tone generating siggen component and also modifying the run-time attributes such as frequency, amplitude etc. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Check if the siggen comp has exactly 1 kcontrol for triggering. Since the kcontrol for the siggen serves as an ON/OFF switch, its max value should be 1. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This patch proposes a new IO handler for switch type kcontrols which can be used to trigger components such as siggen or control volume mute functionality. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
…rol IO handler This patch adds the changes to the switch control IO handler to handle the additional steps required to trigger the siggen pipeline based on user input.wq When the user switches the siggen control ON, the IO handler sends the ipc messages required to set up the pcm params and start the pipeline. When the user switches it off, it frees the pcm and resets the pipeline. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Hostless pipelines lack a FE dai that is used to establish a path to the BE and enable the codecs. Virtual FE dai links can be used in such cases to establish a connection to the BE. This patch adds a new flag named "virtual" to the dai link structure that will be used to check if a dai link is virtual. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This patch adds the methods for create a virtual FE dal link and add it to the sound card. It also adds the method to free the virtual FE connected to the card. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
When walking the graph to discover the path from the virtual FE to the BE, there is only one widget in the path. Do not remove this BE widget from the list, so it can be used to connect with the virtual FE dai link. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
…iggen widget Since hostless pipelines do not have a PCM, they need a virtual FE dai link that can be used to startup the BE dai links when the pipeline is triggered. Without this, the BE dai links do not get enabled and the tone would be inaudible. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
…irtual dai link Virtual FE dai links should be manually set to running state by default with a pcm runtime. The active count of their cpu_dai and codec_dai's should also be updated. This is required to establish FE-BE connection and enable the BE DAI when the dpcm runtime is updated. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Virtual FE dai links do not need to register the pcm device. So just create the empty pcm device and substream in the requested direction. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
the soc_dpcm_runtime_update() method will be called to establish a connection to the BE and enable the codec. So make this method accessible to modules. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Enable BE dai before triggering the siggen pipeline by calling the soc_dpcm_runtime_update() method. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Member
|
15 commits spread between ASoC, SOF, this is very hard to review. |
Collaborator
Author
|
Sure. I can send just the ASoC core changes first. Thanks! |
Merged
This was referenced Jun 7, 2020
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This patchset adds the support for triggering hostless siggen pipelines using the kcontrol associated with the siggen widget. It adds a bespoke IO handler for switch type kcontrols such as those required for triggering the tone component.
It also introduces the concept of a virtual FE dai link. Previously, when trying to enable the hostless pipeline, the codec was not getting enabled and the tone remained inaudible.
Therefore, in such cases, a virtual FE dai link is used to establish a connection to the BE dai and enable the codec when the pipeline is triggered.
The virtual FE will be created when a siggen widget is loaded and freed when the siggen widget is unloaded. It will be used for enabling the BE dai in the kcontrol IO handler for the kcontrol attached to the siggen by calling the soc_spcm_runtime_update() method.
Tested with:
Minnowboard turbot with RT5651 and Up squared board with HifiBerry DAC+
SOF kernel: https://github.com/ranj063/sound branch: topic/tone
SOF: https://github.com/ranj063/sof branch: topic/tone
SOFT: https://github.com/ranj063/soft branch: topic/tone
Please store the config before switching to the tone topology using:
alsactl store -f config.state
And restore after switching to the tone topology with:
alsactl restore -f config.state
v4 changes:
1. minor changes to switch kcontrol IO Handler
2. included the patch to enable kcontrol for siggen widget
Please ignore the patchset in the mailing list.